RAIS  3.2
C:/Projekte/RAIS/FillCustomQueryTableCL/QueryTable.cs
Go to the documentation of this file.
00001 using System;
00002 using System.Collections.Generic;
00003 using System.Text;
00004 using System.Xml;
00005 using System.Data;
00006 using System.Data.SqlClient;
00007 using RAIS.DataAccessLayer;
00008 
00009 namespace FillCustomQueryTableCL
00010 {
00011     public static class QueryTable
00012     {
00013         #region Fields
00014         
00015         private static Dictionary<string, Query> queries = new Dictionary<string, Query>();
00016 
00017 
00018 
00019         #endregion
00020                 public static void FillQueryTable(string connectionString, string queriesFileName)
00021         {
00022                         Query.InitQuery(connectionString);
00023                         Parameter.InitParameter(connectionString);
00024                         queries = Query.Create(connectionString, queriesFileName);
00025 
00026             using (SqlConnection sqlConnection = new SqlConnection(connectionString))
00027             {
00028                 sqlConnection.Open();
00029 
00030                 StringBuilder sbParams = new StringBuilder();
00031                 StringBuilder sbQueries = new StringBuilder();
00032 
00033                 XmlWriter xwParams = XmlWriter.Create(sbParams);
00034                 XmlWriter xwQueries = XmlWriter.Create(sbQueries);
00035 
00036                 xwParams.WriteStartElement("Parameters");
00037                 xwQueries.WriteStartElement("Queries");
00038 
00039                 foreach (Query query in queries.Values)
00040                     query.WriteToXML(xwQueries, xwParams);
00041 
00042                 xwParams.WriteEndElement();
00043                 xwQueries.WriteEndElement();
00044 
00045                 xwParams.Close();
00046                 xwQueries.Close();
00047 
00048 
00049                 WriteData(sbQueries.ToString(), sbParams.ToString(), sqlConnection);
00050             }
00051         }
00052 
00053         #region Private methods
00054 
00055         private static void WriteData(String queries, String parrameters, SqlConnection sqlConnection)
00056         {
00057             using (SqlCommand sqlCommand = new SqlCommand("", sqlConnection))
00058             {
00059                 sqlCommand.CommandType = CommandType.StoredProcedure;
00060                 sqlCommand.CommandText = "usp_FillQueryTable";
00061                 DataAccessUtilities.AddParameter(sqlCommand, "@Queries", queries);
00062                 DataAccessUtilities.AddParameter(sqlCommand, "@Parameters", parrameters);
00063                 sqlCommand.Parameters[0].SqlDbType = SqlDbType.Xml;
00064                 sqlCommand.Parameters[1].SqlDbType = SqlDbType.Xml;
00065                 sqlCommand.ExecuteNonQuery();
00066             }
00067         }
00068 
00069         #endregion
00070     }
00071 }